<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Aria: ArLineSegment Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Aria
   &#160;<span id="projectnumber">2.9.1</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classArLineSegment.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classArLineSegment-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">ArLineSegment Class Reference<div class="ingroups"><a class="el" href="group__UtilityClasses.html">Utility Classes</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Represents a line segment in two-dimensional space.  
 <a href="classArLineSegment.html#details">More...</a></p>

<p><code>#include &lt;ariaUtil.h&gt;</code></p>

<p>Inherited by <a class="el" href="classArLineFinderSegment.html">ArLineFinderSegment</a>.</p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:adf266f98e266c55d8481c5dd19a7b0a0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLineSegment.html#adf266f98e266c55d8481c5dd19a7b0a0">ArLineSegment</a> ()</td></tr>
<tr class="separator:adf266f98e266c55d8481c5dd19a7b0a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89e1983340aaf6914c1625743a190a06"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLineSegment.html#a89e1983340aaf6914c1625743a190a06">ArLineSegment</a> (double x1, double y1, double x2, double y2)</td></tr>
<tr class="memdesc:a89e1983340aaf6914c1625743a190a06"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor with endpoints.  <a href="#a89e1983340aaf6914c1625743a190a06">More...</a><br /></td></tr>
<tr class="separator:a89e1983340aaf6914c1625743a190a06"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc1f6a4b2f18a4cc712c818044b50bb3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afc1f6a4b2f18a4cc712c818044b50bb3"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLineSegment.html#afc1f6a4b2f18a4cc712c818044b50bb3">ArLineSegment</a> (<a class="el" href="classArPose.html">ArPose</a> pose1, <a class="el" href="classArPose.html">ArPose</a> pose2)</td></tr>
<tr class="memdesc:afc1f6a4b2f18a4cc712c818044b50bb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor with endpoints as <a class="el" href="classArPose.html" title="Represents an x, y position with an orientation. ">ArPose</a> objects. Only X and Y components of the poses will be used. <br /></td></tr>
<tr class="separator:afc1f6a4b2f18a4cc712c818044b50bb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafa9df593aaf29658dfb47c47b904855"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aafa9df593aaf29658dfb47c47b904855"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLineSegment.html#aafa9df593aaf29658dfb47c47b904855">getA</a> (void) const </td></tr>
<tr class="memdesc:aafa9df593aaf29658dfb47c47b904855"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the A line parameter (see <a class="el" href="classArLine.html" title="Represents geometry of a line in two-dimensional space. ">ArLine</a>) <br /></td></tr>
<tr class="separator:aafa9df593aaf29658dfb47c47b904855"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee434d8513eaf9eb67921135ee7b3a88"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aee434d8513eaf9eb67921135ee7b3a88"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLineSegment.html#aee434d8513eaf9eb67921135ee7b3a88">getB</a> (void) const </td></tr>
<tr class="memdesc:aee434d8513eaf9eb67921135ee7b3a88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the B line parameter (see <a class="el" href="classArLine.html" title="Represents geometry of a line in two-dimensional space. ">ArLine</a>) <br /></td></tr>
<tr class="separator:aee434d8513eaf9eb67921135ee7b3a88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e9b0bcb0f2f76939ef4a18a801ed27e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7e9b0bcb0f2f76939ef4a18a801ed27e"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLineSegment.html#a7e9b0bcb0f2f76939ef4a18a801ed27e">getC</a> (void) const </td></tr>
<tr class="memdesc:a7e9b0bcb0f2f76939ef4a18a801ed27e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the C line parameter (see <a class="el" href="classArLine.html" title="Represents geometry of a line in two-dimensional space. ">ArLine</a>) <br /></td></tr>
<tr class="separator:a7e9b0bcb0f2f76939ef4a18a801ed27e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade742a13ddab6b17ae5776509abc63d8"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLineSegment.html#ade742a13ddab6b17ae5776509abc63d8">getDistToLine</a> (const <a class="el" href="classArPose.html">ArPose</a> &amp;pose) const </td></tr>
<tr class="memdesc:ade742a13ddab6b17ae5776509abc63d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the distance from this line segment to a point.  <a href="#ade742a13ddab6b17ae5776509abc63d8">More...</a><br /></td></tr>
<tr class="separator:ade742a13ddab6b17ae5776509abc63d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a919c6fd2348539ef27703d3cc33a8e86"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a919c6fd2348539ef27703d3cc33a8e86"></a>
<a class="el" href="classArPose.html">ArPose</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLineSegment.html#a919c6fd2348539ef27703d3cc33a8e86">getEndPoint1</a> (void) const </td></tr>
<tr class="memdesc:a919c6fd2348539ef27703d3cc33a8e86"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the first endpoint (X1, Y1) <br /></td></tr>
<tr class="separator:a919c6fd2348539ef27703d3cc33a8e86"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b194557ef0f783bf972ed723cc6a703"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3b194557ef0f783bf972ed723cc6a703"></a>
<a class="el" href="classArPose.html">ArPose</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLineSegment.html#a3b194557ef0f783bf972ed723cc6a703">getEndPoint2</a> (void) const </td></tr>
<tr class="memdesc:a3b194557ef0f783bf972ed723cc6a703"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the second endpoint of (X2, Y2) <br /></td></tr>
<tr class="separator:a3b194557ef0f783bf972ed723cc6a703"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad78f03adf53dd5eaa4faa70b05e9f061"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad78f03adf53dd5eaa4faa70b05e9f061"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLineSegment.html#ad78f03adf53dd5eaa4faa70b05e9f061">getLengthOf</a> () const </td></tr>
<tr class="memdesc:ad78f03adf53dd5eaa4faa70b05e9f061"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the length of the line segment. <br /></td></tr>
<tr class="separator:ad78f03adf53dd5eaa4faa70b05e9f061"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ae3688a4fa876a4e14446fed053043d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2ae3688a4fa876a4e14446fed053043d"></a>
const <a class="el" href="classArLine.html">ArLine</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>getLine</b> (void) const </td></tr>
<tr class="separator:a2ae3688a4fa876a4e14446fed053043d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c7d1fdf191320212a9618dbc71d78f0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0c7d1fdf191320212a9618dbc71d78f0"></a>
<a class="el" href="classArPose.html">ArPose</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLineSegment.html#a0c7d1fdf191320212a9618dbc71d78f0">getMidPoint</a> () const </td></tr>
<tr class="memdesc:a0c7d1fdf191320212a9618dbc71d78f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the mid point of the line segment. <br /></td></tr>
<tr class="separator:a0c7d1fdf191320212a9618dbc71d78f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad427ddc8bcda146d30eb648cbf03c1d5"><td class="memItemLeft" align="right" valign="top">virtual double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLineSegment.html#ad427ddc8bcda146d30eb648cbf03c1d5">getPerpDist</a> (const <a class="el" href="classArPose.html">ArPose</a> &amp;pose) const </td></tr>
<tr class="memdesc:ad427ddc8bcda146d30eb648cbf03c1d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the distance from the given point to (its projection on) this line segment.  <a href="#ad427ddc8bcda146d30eb648cbf03c1d5">More...</a><br /></td></tr>
<tr class="separator:ad427ddc8bcda146d30eb648cbf03c1d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aedafa8a9d99719e36fd25afc00ce849d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLineSegment.html#aedafa8a9d99719e36fd25afc00ce849d">getPerpPoint</a> (const <a class="el" href="classArPose.html">ArPose</a> &amp;pose, <a class="el" href="classArPose.html">ArPose</a> *perpPoint) const </td></tr>
<tr class="memdesc:aedafa8a9d99719e36fd25afc00ce849d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine the intersection point between this line segment, and a perpendicular line passing through the given pose (i.e. projects the given pose onto this line segment.)  <a href="#aedafa8a9d99719e36fd25afc00ce849d">More...</a><br /></td></tr>
<tr class="separator:aedafa8a9d99719e36fd25afc00ce849d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d4267d94a5beff5aa9d68ed77486cf1"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLineSegment.html#a2d4267d94a5beff5aa9d68ed77486cf1">getPerpPoint</a> (const <a class="el" href="classArPose.html">ArPose</a> *pose, <a class="el" href="classArPose.html">ArPose</a> *perpPoint) const </td></tr>
<tr class="memdesc:a2d4267d94a5beff5aa9d68ed77486cf1"><td class="mdescLeft">&#160;</td><td class="mdescRight">const  <a href="#a2d4267d94a5beff5aa9d68ed77486cf1">More...</a><br /></td></tr>
<tr class="separator:a2d4267d94a5beff5aa9d68ed77486cf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59dc06bba44228d821a8e66f3466f253"><td class="memItemLeft" align="right" valign="top">virtual double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLineSegment.html#a59dc06bba44228d821a8e66f3466f253">getPerpSquaredDist</a> (const <a class="el" href="classArPose.html">ArPose</a> &amp;pose) const </td></tr>
<tr class="memdesc:a59dc06bba44228d821a8e66f3466f253"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the squared distance from the given point to (its projection on) this line segment.  <a href="#a59dc06bba44228d821a8e66f3466f253">More...</a><br /></td></tr>
<tr class="separator:a59dc06bba44228d821a8e66f3466f253"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afead34f15dfee4f7e3d71b459708fef2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afead34f15dfee4f7e3d71b459708fef2"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLineSegment.html#afead34f15dfee4f7e3d71b459708fef2">getX1</a> (void) const </td></tr>
<tr class="memdesc:afead34f15dfee4f7e3d71b459708fef2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the x coordinate of the first endpoint. <br /></td></tr>
<tr class="separator:afead34f15dfee4f7e3d71b459708fef2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e7c9a96a559a0f0a5b2e1fc66719af8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1e7c9a96a559a0f0a5b2e1fc66719af8"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLineSegment.html#a1e7c9a96a559a0f0a5b2e1fc66719af8">getX2</a> (void) const </td></tr>
<tr class="memdesc:a1e7c9a96a559a0f0a5b2e1fc66719af8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the x coordinate of the second endpoint. <br /></td></tr>
<tr class="separator:a1e7c9a96a559a0f0a5b2e1fc66719af8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adcd7905aff1ea6738d6a6f32709566c3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adcd7905aff1ea6738d6a6f32709566c3"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLineSegment.html#adcd7905aff1ea6738d6a6f32709566c3">getY1</a> (void) const </td></tr>
<tr class="memdesc:adcd7905aff1ea6738d6a6f32709566c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the y coordinate of the first endpoint. <br /></td></tr>
<tr class="separator:adcd7905aff1ea6738d6a6f32709566c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:affcefc314b3b30c351d62fa38a56c908"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="affcefc314b3b30c351d62fa38a56c908"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLineSegment.html#affcefc314b3b30c351d62fa38a56c908">getY2</a> (void) const </td></tr>
<tr class="memdesc:affcefc314b3b30c351d62fa38a56c908"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the y coordinate of the second endpoint. <br /></td></tr>
<tr class="separator:affcefc314b3b30c351d62fa38a56c908"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a880e9d3dd91aea3801e09ccc1927ad7a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLineSegment.html#a880e9d3dd91aea3801e09ccc1927ad7a">intersects</a> (const <a class="el" href="classArLine.html">ArLine</a> *line, <a class="el" href="classArPose.html">ArPose</a> *pose) const </td></tr>
<tr class="memdesc:a880e9d3dd91aea3801e09ccc1927ad7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine where a line intersects this line segment.  <a href="#a880e9d3dd91aea3801e09ccc1927ad7a">More...</a><br /></td></tr>
<tr class="separator:a880e9d3dd91aea3801e09ccc1927ad7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7c5ee7d3b03168e4e0bde71676e4f01"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLineSegment.html#ae7c5ee7d3b03168e4e0bde71676e4f01">intersects</a> (<a class="el" href="classArLineSegment.html">ArLineSegment</a> *line, <a class="el" href="classArPose.html">ArPose</a> *pose) const </td></tr>
<tr class="memdesc:ae7c5ee7d3b03168e4e0bde71676e4f01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine where a line intersects this line segment.  <a href="#ae7c5ee7d3b03168e4e0bde71676e4f01">More...</a><br /></td></tr>
<tr class="separator:ae7c5ee7d3b03168e4e0bde71676e4f01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcaed64aff8f2ba27363eff4b5bac2f2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abcaed64aff8f2ba27363eff4b5bac2f2"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLineSegment.html#abcaed64aff8f2ba27363eff4b5bac2f2">linePointIsInSegment</a> (<a class="el" href="classArPose.html">ArPose</a> *pose) const </td></tr>
<tr class="memdesc:abcaed64aff8f2ba27363eff4b5bac2f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal function for seeing if a point on our line is within our segment. <br /></td></tr>
<tr class="separator:abcaed64aff8f2ba27363eff4b5bac2f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06b5753804cf4c1e89f63c9404cf556b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a06b5753804cf4c1e89f63c9404cf556b"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLineSegment.html#a06b5753804cf4c1e89f63c9404cf556b">newEndPoints</a> (double x1, double y1, double x2, double y2)</td></tr>
<tr class="memdesc:a06b5753804cf4c1e89f63c9404cf556b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set new end points for this line segment. <br /></td></tr>
<tr class="separator:a06b5753804cf4c1e89f63c9404cf556b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a76e890bcbd024e0217ab1a2297bdfe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2a76e890bcbd024e0217ab1a2297bdfe"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLineSegment.html#a2a76e890bcbd024e0217ab1a2297bdfe">newEndPoints</a> (const <a class="el" href="classArPose.html">ArPose</a> &amp;pt1, const <a class="el" href="classArPose.html">ArPose</a> &amp;pt2)</td></tr>
<tr class="memdesc:a2a76e890bcbd024e0217ab1a2297bdfe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set new end points for this line segment. <br /></td></tr>
<tr class="separator:a2a76e890bcbd024e0217ab1a2297bdfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace6488474e25998aad1f0fce26414de4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ace6488474e25998aad1f0fce26414de4"></a>
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>operator!=</b> (const <a class="el" href="classArLineSegment.html">ArLineSegment</a> &amp;other) const </td></tr>
<tr class="separator:ace6488474e25998aad1f0fce26414de4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7395ef0e03cb1a9c24473b951a8b142a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7395ef0e03cb1a9c24473b951a8b142a"></a>
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLineSegment.html#a7395ef0e03cb1a9c24473b951a8b142a">operator&lt;</a> (const <a class="el" href="classArLineSegment.html">ArLineSegment</a> &amp;other) const </td></tr>
<tr class="memdesc:a7395ef0e03cb1a9c24473b951a8b142a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Less than operator (for sets) <br /></td></tr>
<tr class="separator:a7395ef0e03cb1a9c24473b951a8b142a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a95aa2ca094723b39f10406a6a0fe4e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6a95aa2ca094723b39f10406a6a0fe4e"></a>
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArLineSegment.html#a6a95aa2ca094723b39f10406a6a0fe4e">operator==</a> (const <a class="el" href="classArLineSegment.html">ArLineSegment</a> &amp;other) const </td></tr>
<tr class="memdesc:a6a95aa2ca094723b39f10406a6a0fe4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Equality operator (for sets) <br /></td></tr>
<tr class="separator:a6a95aa2ca094723b39f10406a6a0fe4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a9e37657cf6b9cf1fbf81f78c2ce2ea8a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9e37657cf6b9cf1fbf81f78c2ce2ea8a"></a>
<a class="el" href="classArLine.html">ArLine</a>&#160;</td><td class="memItemRight" valign="bottom"><b>myLine</b></td></tr>
<tr class="separator:a9e37657cf6b9cf1fbf81f78c2ce2ea8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a560cbb940b654bbfee0857a666577e91"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a560cbb940b654bbfee0857a666577e91"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>myX1</b></td></tr>
<tr class="separator:a560cbb940b654bbfee0857a666577e91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9e4f49bae57cef7efaa999e00a5020b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac9e4f49bae57cef7efaa999e00a5020b"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>myX2</b></td></tr>
<tr class="separator:ac9e4f49bae57cef7efaa999e00a5020b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca1eda422b58b67f1e7efa1f53eb8e10"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aca1eda422b58b67f1e7efa1f53eb8e10"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>myY1</b></td></tr>
<tr class="separator:aca1eda422b58b67f1e7efa1f53eb8e10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ec6c9bb324b09af1c1edba494e73bfb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7ec6c9bb324b09af1c1edba494e73bfb"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>myY2</b></td></tr>
<tr class="separator:a7ec6c9bb324b09af1c1edba494e73bfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Represents a line segment in two-dimensional space. </p>
<p>The segment is defined by the coordinates of each endpoint. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="adf266f98e266c55d8481c5dd19a7b0a0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">ArLineSegment::ArLineSegment </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p><b>Java and Python Wrappers:</b> Not available in Java or Python wrapper libraries. </p>

</div>
</div>
<a class="anchor" id="a89e1983340aaf6914c1625743a190a06"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">ArLineSegment::ArLineSegment </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>x1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>y1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>x2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>y2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Constructor with endpoints. </p>
<p><b>Java and Python Wrappers:</b> Not available in Java or Python wrapper libraries. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="ade742a13ddab6b17ae5776509abc63d8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double ArLineSegment::getDistToLine </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classArPose.html">ArPose</a> &amp;&#160;</td>
          <td class="paramname"><em>pose</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Gets the distance from this line segment to a point. </p>
<p>If the point can be projected onto this line segment (i.e. a perpendicular line can be drawn through the point), then return that distance. Otherwise, return the distance to the closest endpoint. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pose</td><td>the pointer of the pose to find the distance to </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ad427ddc8bcda146d30eb648cbf03c1d5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual double ArLineSegment::getPerpDist </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classArPose.html">ArPose</a> &amp;&#160;</td>
          <td class="paramname"><em>pose</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Calculate the distance from the given point to (its projection on) this line segment. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pose</td><td>the the pose to find the perp point of</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>if the pose does not intersect segment it will return &lt; 0 if the pose intersects the segment it will return the distance to the intersection </dd></dl>

</div>
</div>
<a class="anchor" id="aedafa8a9d99719e36fd25afc00ce849d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ArLineSegment::getPerpPoint </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classArPose.html">ArPose</a> &amp;&#160;</td>
          <td class="paramname"><em>pose</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classArPose.html">ArPose</a> *&#160;</td>
          <td class="paramname"><em>perpPoint</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determine the intersection point between this line segment, and a perpendicular line passing through the given pose (i.e. projects the given pose onto this line segment.) </p>
<p>If there is no intersection, false is returned. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pose</td><td>The X and Y components of this pose object indicate the point to project onto this line segment. </td></tr>
    <tr><td class="paramname">perpPoint</td><td>The X and Y components of this pose object are set to indicate the intersection point </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if an intersection was found and perpPoint was modified, false otherwise. </dd></dl>
<p><b>Java and Python Wrappers:</b> Not available in Java or Python wrapper libraries. </p>

</div>
</div>
<a class="anchor" id="a2d4267d94a5beff5aa9d68ed77486cf1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ArLineSegment::getPerpPoint </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classArPose.html">ArPose</a> *&#160;</td>
          <td class="paramname"><em>pose</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classArPose.html">ArPose</a> *&#160;</td>
          <td class="paramname"><em>perpPoint</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>const </p>
<p>const (This version simply allows you to pass the first pose as a pointer, in time-critical situations where a full copy of the object would impact performance.) </p>

</div>
</div>
<a class="anchor" id="a59dc06bba44228d821a8e66f3466f253"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual double ArLineSegment::getPerpSquaredDist </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classArPose.html">ArPose</a> &amp;&#160;</td>
          <td class="paramname"><em>pose</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Calculate the squared distance from the given point to (its projection on) this line segment. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pose</td><td>the the pose to find the perp point of</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>if the pose does not intersect segment it will return &lt; 0 if the pose intersects the segment it will return the distance to the intersection </dd></dl>

</div>
</div>
<a class="anchor" id="a880e9d3dd91aea3801e09ccc1927ad7a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ArLineSegment::intersects </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classArLine.html">ArLine</a> *&#160;</td>
          <td class="paramname"><em>line</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classArPose.html">ArPose</a> *&#160;</td>
          <td class="paramname"><em>pose</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determine where a line intersects this line segment. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">line</td><td>Line to check for intersection against this line segment. </td></tr>
    <tr><td class="paramname">pose</td><td>if the lines intersect, the X and Y components of this pose are set to the point of intersection. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if they intersect, false if they do not </dd></dl>

</div>
</div>
<a class="anchor" id="ae7c5ee7d3b03168e4e0bde71676e4f01"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ArLineSegment::intersects </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classArLineSegment.html">ArLineSegment</a> *&#160;</td>
          <td class="paramname"><em>line</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classArPose.html">ArPose</a> *&#160;</td>
          <td class="paramname"><em>pose</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determine where a line intersects this line segment. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">line</td><td>Line to check for intersection against this line segment. </td></tr>
    <tr><td class="paramname">pose</td><td>if the lines intersect, the X and Y components of this pose are set to the point of intersection. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if they intersect, false if they do not </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>ariaUtil.h</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="classArLineSegment.html">ArLineSegment</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>
